
{
	let regex01=new RegExp('a','i');
	//es5中如果检索内容是正则,则只能写一个参数,后面修饰符要放到正则后面
	//let regex02=new RegExp(/a/,'g');  es5会报错 
	/*
	 * ES6中允许使用第二个修饰符,使用后会覆盖掉之前的修饰符
	 */
	let regex02=new RegExp(/a/i,'g'); // g覆盖了i
	console.log(regex02.test('Abc')); //false
	
	let regex03=new RegExp(/a/i);
	console.log(regex03.test('Abc')); //true
	
	//es6新增了flags属性,获取RegExp对象的修饰符
	console.log(regex02.flags); //g
	console.log(regex03.flags); //i
}

{
	let a='bbb_bb_b';
	let re1=/b+/g; //g:全局匹配
	let re2=/b+/y;
	console.log('第一次匹配',re1.exec(a),re2.exec(a)); // bbb   bbb
	console.log('第二次匹配',re1.exec(a),re2.exec(a)); // bb   null
	/*
	 * g修饰符第二次匹配会忽略_,直接找到bb,即只要剩余的地方有就匹配
	 * 而y修饰符第二次匹配会从紧跟的_开始,不满足b+,所以返回null,即从开始的位置
	 */
	//sticky: 判断一个正则表达式是否启用y修饰符
	console.log(re1.sticky,re2.sticky); //false true
}
